home *** CD-ROM | disk | FTP | other *** search
- *****Listing 1*****
-
- semaphor.h
-
- #ifndef SEMAPHOR_H /* prevent multiple includes */
- #define SEMAPHOR_H
-
- #include <limits.h>
- #ifndef PATH_MAX
- #define PATH_MAX (256) /* max # of characters in a path name */
- #endif
-
- /* constants */
- #define SEMOPEN_MAX (60) /* max # semaphore sets open at once */
-
- /* type definitions */
- typedef struct { /* semaphore set control structure */
- char semdir[PATH_MAX + 1]; /* semaphore directory path name */
- int semc; /* semaphore count */
- } semset_t;
-
- /* function declarations */
- int semclose(semset_t *ssp);
- #define semcount(ssp) ((ssp)->semc)
- int semlower(semset_t *ssp, int semno);
- semset_t * semopen(char *semdir, int flags, int semc);
- int semraise(semset_t *ssp, int semno);
- int semremove(char *semdir);
-
- /* semopen command flags */
- #define SEM_CREAT (01000) /* create and open */
- #define SEM_EXCL (02000) /* exclusive open */
-
- /* error codes */
- #define SEMEOS (0) /* start of error code domain */
- #define SEMEMFILE (SEMEOS - 1) /* too many semaphore sets open */
- #define SEMPANIC (SEMEOS - 2) /* internal semaphore error */
-
- #endif /* #ifndef SEMAPHOR_H */
-
-
-